// pages/my-messages/my-messages.ts
import { feedBackMyList } from '../../../api/kefu.js';
import { checkLogin } from '../../../libs/login';
import { goToPage, PAGE_LOGIN } from '../../../config/pages';

interface MessageItem {
  id: number;
  uid: number;
  rela_name: string;
  phone: string;
  content: string;
  make?: string;        // 备注/回复
  status: number;       // 状态：0-待处理，1-已处理
  add_time: string;     // 添加时间
}

Page({
  data: {
    messages: [] as MessageItem[],
    loading: false,
    refreshing: false,
    page: 1,
    limit: 10,
    hasMore: true,
    isEmpty: false,
  },

  async onLoad() {
    // 检查登录状态
    if (!checkLogin()) {
      goToPage(PAGE_LOGIN, {}, 'reLaunch');
      return;
    }
    await this.loadMessages();
  },

  // 下拉刷新
  async onPullDownRefresh() {
    this.setData({
      page: 1,
      hasMore: true,
      messages: []
    });
    await this.loadMessages();
    wx.stopPullDownRefresh();
  },

  // 上拉加载更多
  async onReachBottom() {
    if (!this.data.hasMore || this.data.loading) {
      return;
    }
    const nextPage = this.data.page + 1;
    this.setData({ page: nextPage });
    await this.loadMessages(true);
  },

  // 加载留言列表
  async loadMessages(isLoadMore = false) {
    if (this.data.loading) return;

    this.setData({ loading: true });

    try {
      const params = {
        page: this.data.page,
        limit: this.data.limit
      };

      // @ts-ignore
      const res = await feedBackMyList(params);
      
      if (res && res.data) {
        // 根据实际返回的数据结构调整：res.data.data 而不是 res.data.list
        const newMessages = res.data.data || [];
        const messages = isLoadMore 
          ? [...this.data.messages, ...newMessages]
          : newMessages;

        this.setData({
          messages,
          hasMore: newMessages.length >= this.data.limit,
          isEmpty: messages.length === 0,
          loading: false
        });
        
        console.log('留言列表加载成功:', messages);
      } else {
        this.setData({ 
          loading: false,
          isEmpty: this.data.messages.length === 0 
        });
      }
    } catch (error: any) {
      console.error('加载留言列表失败:', error);
      this.setData({ loading: false });
      
      wx.showToast({
        title: error?.msg || '加载失败',
        icon: 'none',
        duration: 2000
      });
    }
  },

  // 刷新列表
  async refreshMessages() {
    this.setData({
      page: 1,
      hasMore: true,
      messages: []
    });
    await this.loadMessages();
  },

  // 查看留言详情
  viewMessage(e: any) {
    const { index } = e.currentTarget.dataset;
    const message = this.data.messages[index];
    
    if (message) {
      const statusText = message.status === 1 ? '已处理' : '待处理';
      const replyContent = message.make && message.make.trim() !== '' 
        ? `\n回复内容：\n${message.make}` 
        : '\n暂无回复';
      
      wx.showModal({
        title: '留言详情',
        content: `留言人：${message.rela_name || '匿名'}
联系电话：${message.phone || '未提供'}
留言时间：${message.add_time || ''}
状态：${statusText}

留言内容：
${message.content || ''}
${replyContent}`,
        showCancel: false,
        confirmText: '知道了'
      });
    }
  },

  // 删除留言（如果后端有删除接口的话）
  deleteMessage(e: any) {
    const { index } = e.currentTarget.dataset;
    
    wx.showModal({
      title: '确认删除',
      content: '确定要删除这条留言吗？',
      success: (res) => {
        if (res.confirm) {
          // TODO: 调用删除接口
          console.log('删除留言:', index);
          wx.showToast({
            title: '删除功能暂未开放',
            icon: 'none'
          });
        }
      }
    });
  }
});

